/**
 * @format
 * @Author: TC
 * @Date: 2021-09-26 14:12:02
 * @Last Modified by: TC
 * @Last Modified time: 2025-05-05 01:42:19
 */

import { app } from "../App";
import { Sdk4399GameBox } from "../Module/Sdk/Sdk4399GameBox";
import { Sdk4399Web } from "../Module/Sdk/Sdk4399Web";

/**
 * 第三方sdk管理类
 */
export class SdkManger {
    private sdk: any = null;
    /**
     * 初始化
     * @returns
     */
    public init(): void {
        if (!this.isPlatForm()) return;
        if (window["h5api"]) {
            this.sdk = new Sdk4399Web();
        }
        if (window.hasOwnProperty("gamebox")) this.sdk = new Sdk4399GameBox();
    }

    /**
     * 是否是第三方平台
     * @returns
     */
    public isPlatForm() {
        if (window["h5api"]) {
            return true;
        }
        if (window.hasOwnProperty("gamebox")) return true;
        return false;
    }

    /**
     * 登录
     * @returns
     */
    public async login() {
        return new Promise((resolve) => {
            if (!this.isPlatForm()) {
                resolve("ok");
                return;
            }
            this.sdk.login({
                success(res: any) {
                    if (res.code) {
                        resolve(res.code);
                    } else {
                        app.log.log("登录失败！" + res.errMsg);
                    }
                },
            });
        });
    }

    /**
     * 分享
     * @returns
     */
    public share(): void {
        if (!this.isPlatForm()) return;
        this.sdk.share();
    }

    /**
     * 提交分数
     * @param score 分数
     * @returns
     */
    public submit(score: number): void {
        if (!this.isPlatForm()) return;
        this.sdk.submit(score);
    }

    /**
     * 显示排行榜
     * @returns
     */
    public showRank(): void {
        if (!this.isPlatForm()) {
            app.uiMgr.showTip("非第三方平台");
            return;
        }
        this.sdk.showRank();
    }

    /**
     * 更多推荐
     * @returns
     */
    public showMore(): void {
        if (!this.isPlatForm()) {
            app.uiMgr.showTip("非第三方平台");
            return;
        }
        this.sdk.showMore();
    }

    /***********************************商业化************************************ */

    /**
     * 显示banner广告
     * @returns
     */
    public showBannerAd(): void {
        if (!this.isPlatForm()) return;
        this.sdk.showBannerAd();
    }

    /**
     * 隐藏banner广告
     * @returns
     */
    public hideBannerAd(): void {
        if (!this.isPlatForm()) return;
        this.sdk.hideBannerAd();
    }

    /**
     * 显示插屏广告
     * @returns
     */
    public showInterstitialAd(): void {
        if (!this.isPlatForm()) return;
        this.sdk.showInterstitialAd();
    }
}
